#!/usr/bin/env node
import fs from "fs-extra";
import { program } from "commander";
import figlet from "figlet";
import chalk from "chalk";
import create from './src/create.js'
import updateTemplate from './src/template.js'

// 读取package.json配置信息
const pkg = fs.readJsonSync(new URL("./package.json", import.meta.url));

// 查看版本号
program.version(pkg.version, "-v, --version");

program
  .command("create <app-name>")
  .description('创建一个新的项目')
  .option("-t --template [template]", "输入模板名称快速创建项目")
  .option("-f --force", "强制覆盖本地同名项目")
  .option("-i --ignore", "忽略项目相关描述,快速创建项目")
  .option("-last --last", "使用最新模板")
  .action(create);

program
  .command("update")
  .action(updateTemplate)

// 配置脚手架基本信息
program
  .name('cx')
  .description('cx自定义脚手架')
  .usage("<command> [options]")
  // 用在内置的帮助信息之后输出自定义的额外信息
  .on("--help", () => {
    console.log("\r\n" + chalk.greenBright.bold(figlet.textSync("cx", {
      font: "Standard",
      horizontalLayout: "default",
      verticalLayout: "default",
      width: 300,
      whitespaceBreak: true,
    })))
    console.log(`\r\n Run ${chalk.cyanBright(`cx <command> --help`)} for detailed usage of given command.`)
  });

program.parse(process.argv);
